package 简单.搜索.深度优先搜索;

import util.TreeNode;

/**
 * 给定二叉搜索树（BST）的根节点和一个值。 你需要在BST中找到
 * 节点值等于给定值的节点。 返回以该节点为根的子树。 如果节点不
 * 存在，则返回 NULL。
 * <p>
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode-cn.com/problems/search-in-a-binary-search-tree
 */
public class 二叉搜索树中的搜索_700 {

    public static void main(String[] args) {

    }

    public TreeNode searchBST(TreeNode root, int val) {
        if (root == null) {
            return null;
        }
        if (root.val == val) {
            return root;
        }
        TreeNode leftNode = searchBST(root.left, val);
        TreeNode rightNode = searchBST(root.right, val);
        if (leftNode != null) {
            return leftNode;
        }
        if (rightNode != null) {
            return rightNode;
        }
        return null;
    }

}
